package com.funsport.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单实体类
 */
@Data
@TableName("orders")
public class Order {
    
    @TableId(type = IdType.AUTO)
    private Long id;
    
    /**
     * 订单号
     */
    private String orderNo;
    
    /**
     * 用户ID
     */
    private Long userId;
    
    /**
     * 订单类型：venue_booking-场地预订, event_signup-活动报名, point_product-积分商品
     */
    private String orderType;
    
    /**
     * 关联业务ID
     */
    private Long businessId;
    
    /**
     * 订单金额
     */
    private BigDecimal amount;
    
    /**
     * 订单状态：pending-待支付, paid-已支付, cancelled-已取消, refunded-已退款
     */
    private String status;
    
    /**
     * 支付方式：wechat-微信支付, alipay-支付宝, points-积分
     */
    private String paymentMethod;
    
    /**
     * 微信支付交易号
     */
    private String transactionId;
    
    /**
     * 微信预支付ID
     */
    private String prepayId;
    
    /**
     * 支付时间
     */
    private LocalDateTime paidAt;
    
    /**
     * 退款金额
     */
    private BigDecimal refundAmount;
    
    /**
     * 退款时间
     */
    private LocalDateTime refundedAt;
    
    /**
     * 退款原因
     */
    private String refundReason;
    
    /**
     * 订单备注
     */
    private String notes;
    
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdAt;
    
    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;
}

